home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / asm-xtensa / dma.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.8 KB  |  62 lines

  1. /*
  2.  * include/asm-xtensa/dma.h
  3.  *
  4.  * This file is subject to the terms and conditions of the GNU General Public
  5.  * License.  See the file "COPYING" in the main directory of this archive
  6.  * for more details.
  7.  *
  8.  * Copyright (C) 2003 - 2005 Tensilica Inc.
  9.  */
  10.  
  11. #ifndef _XTENSA_DMA_H
  12. #define _XTENSA_DMA_H
  13.  
  14. #include <asm/io.h>        /* need byte IO */
  15.  
  16. /*
  17.  * This is only to be defined if we have PC-like DMA.
  18.  * By default this is not true on an Xtensa processor,
  19.  * however on boards with a PCI bus, such functionality
  20.  * might be emulated externally.
  21.  *
  22.  * NOTE:  there still exists driver code that assumes
  23.  * this is defined, eg. drivers/sound/soundcard.c (as of 2.4).
  24.  */
  25. #define MAX_DMA_CHANNELS    8
  26.  
  27. /*
  28.  * The maximum virtual address to which DMA transfers
  29.  * can be performed on this platform.
  30.  *
  31.  * NOTE: This is board (platform) specific, not processor-specific!
  32.  *
  33.  * NOTE: This assumes DMA transfers can only be performed on
  34.  *    the section of physical memory contiguously mapped in virtual
  35.  *    space for the kernel.  For the Xtensa architecture, this
  36.  *    means the maximum possible size of this DMA area is
  37.  *    the size of the statically mapped kernel segment
  38.  *    (XCHAL_KSEG_{CACHED,BYPASS}_SIZE), ie. 128 MB.
  39.  *
  40.  * NOTE: When the entire KSEG area is DMA capable, we substract
  41.  *    one from the max address so that the virt_to_phys() macro
  42.  *    works correctly on the address (otherwise the address
  43.  *    enters another area, and virt_to_phys() may not return
  44.  *    the value desired).
  45.  */
  46.  
  47. #define MAX_DMA_ADDRESS        (PAGE_OFFSET + XCHAL_KIO_SIZE - 1)
  48.  
  49.  
  50. /* Reserve and release a DMA channel */
  51. extern int request_dma(unsigned int dmanr, const char * device_id);
  52. extern void free_dma(unsigned int dmanr);
  53.  
  54. #ifdef CONFIG_PCI
  55. extern int isa_dma_bridge_buggy;
  56. #else
  57. #define isa_dma_bridge_buggy     (0)
  58. #endif
  59.  
  60.  
  61. #endif
  62.